import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Demo2 {
    public static void main(String[] args) throws SQLException {
        //-------------------1.进行配置------------------------------------
        //1.DataSource是这个数据库服务器所在的位置
        //2.MysqlDataSource来自于我们导入的这个mysql驱动包
        DataSource dataSource = new MysqlDataSource();
        //向下转型操作，父类转换为子类----低耦合，减少修改导致的bug
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/db01?characterEncoding=utf8&&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("808080ZhuZhaoYu#");

        //-----------------2.建立连接--------------------------------------
        Connection connection = dataSource.getConnection();

        //--------------3.构造sql，发给服务器--------------------------------------
        String sql="select * from student";
        PreparedStatement statement = connection.prepareStatement(sql);

        //--------------4.发送sql,执行sql,返回值是整数，表示的是影响的行数
        //executeQuery这个的返回值是一个临时表（结果的集合）
        ResultSet resultSet =statement.executeQuery();

        //---------------5.进行遍历----------------------------
        //此处需要针对这个表进行遍历,类似于迭代器，但是有差异
        while(resultSet.next()){
            //id是int类型的，我们调用的就是这个集合的geting方法
            int id=resultSet.getInt("id");
            String name=resultSet.getString("name");
            System.out.println("id="+id+",name="+name);
        }

        //--------------6.释放资源---------------------------------------------
        resultSet.close();
        statement.close();
        connection.close();
    }
}